3、 查询模型
a) 参数:参数是查询模型中代表动态信息的元素。在SQL设计、SQL整理和数据加工中,均可以根据参数的不同,对查询的定义和执行进行调整。应用方式如下:
(1) 参数定义:用于定义本查询内部引用的所有参数,其中参数名要保证互不相同。数据类型包括自由录入、枚举、参照几种,当类型为枚举时,枚举项为用"@"分隔的枚举值,或者是一个单字段的查询SQL;当类型为参照时,枚举项为基础参照名,或者是用尖括号括起的自定义参照的类名。参数的操作符通常只起显示提示的作用,具体的操作符在参数引用时指定。
(2) 参数引用:参数可在SQL设计的筛选条件页签引用,也可在SQL整理或数据加工的嵌入代码中利用编码向导引用。
(3) 参数设置:运行态要求用户首先对参数进行设置,这与查询模板的使用类似。当报表引用了多个查询时,参数将通过多页签设置,每个页签代表一个查询。
b) SQL向导设计:向导设计参考典型SQL的构成规则,充分利用数据字典的功能,引导用户一步步完成SQL的定义,因此是推荐使用的方式。它由以下环节构成:
(1) 表定义:即SQL语句中的from部分,可以利用数据字典选择库里的数据表,也可以选择查询对象,从而实现查询的集成(基于查询结果定义新的查询)。
(2) 连接定义:即SQL语句中的join部分(表间连接关系),支持单键连接和多键连接两种模式。
(3) 字段定义:即SQL语句中的select部分,可以定义任何SQLSERVER语法支持的查询表达式,但要保证字段别名不重复且使用规范名称(以字母开头、由字母、数字、下划线组成的字符串,且不能使用SQL保留字)。如果使用了聚集函数,则由系统自动完成group by部分。
(4) 筛选条件定义:即SQL语句中的where部分,可定义确定条件和待定条件,后者可以通过双击右操作数编辑框弹出参数界面并作引用。
(5) 排序字段定义:即SQL语句中的order by部分。
(6) 数据交叉属性:交叉是一种常用的多维数据分析手段,查询引擎提供了以下两种交叉模式:
(6.1) 投影交叉:假定有一个查询SQL,其查询结果是单行单列的汇总值,另外还有两组WHERE条件的序列,分别为横向序列(WhereX1、WhereX2、……、WhereXn)和纵向序列(WhereY1、WhereY2、……、WhereYn),则数据矩阵A(aij)对应的结果集称为投影交叉,如果aij是WhereXi和WhereYj同时作用在上述SQL上获得的结果。
(6.2) 旋转交叉:此类交叉用于显示表中某几个字段(称为交叉值字段)的统计值,并将其分组放置在查询结果中,一组列放在数据表的左侧(称为交叉行字段),一组列(称为交叉列字段)旋转到数据表的上部成为列表头,统计值则放在对应的交叉单元。
c) SQL手工设计:手工设计是支持自由SQL的方式,由于复杂SQL在解析、适配、执行等方面的不稳定性较大,因此不推荐普通用户使用。手工设计包括SQL录入和字段显示名设置两个环节。
d) SQL整理:指在SQL查询之前,对SQL所作的调整。通常会根据参数的不同,对查询的表、字段或条件等信息进行增补或修改。本功能仅推荐由高级实施人员或程序员使用。
e) 数据加工:指某个(或某几个)结果集在经过一系列加工算法的变换后得到另一个结果集,而后者通常是业务上要求的展现结果。相关的算法又称为加工滤镜,滤镜通常支持输入多个结果集和输出一个结果集,并可以嵌套使用。本功能仅推荐由高级实施人员或程序员使用。
f) 合并查询:将多个查询结果合并拼装成一个固定行列格式的结果,本功能仅推荐由高级实施人员或程序员使用。
g) 穿透规则:指从某个查询结果的区域切换到另一个查询结果的区域的规则,通常反映了一种潜在的业务联系。本功能仅推荐由高级实施人员或程序员使用。
|